<template>
  <div class="main">
    <div class="title">
      <a class="active" href="/login">登录</a>
      <span>·</span>
      <a href="/register">注册</a>
    </div>

    <div class="sign-up-container">
      <el-form ref="userForm" :model="user">
        <el-form-item
          class="input-prepend restyle"
          prop="mail"
          :rules="[
            {
              required: true,
              message: '请输入邮箱',
              trigger: 'blur',
            },
            { validator: checkMail, trigger: 'blur' },
          ]"
        >
          <div>
            <el-input type="text" placeholder="邮箱" v-model="user.mail" />
            <i class="el-icon el-icon-message" />
          </div>
        </el-form-item>
        <el-form-item
          class="input-prepend"
          prop="password"
          :rules="[
            {
              required: true,
              message: '请输入密码',
              trigger: 'blur',
            },
          ]"
        >
          <div>
            <el-input
              type="password"
              placeholder="密码"
              v-model="user.password"
            />
            <i class="el-icon el-icon-lock" />
          </div>
        </el-form-item>

        <div class="btn">
          <input
            type="button"
            class="sign-in-button"
            value="登录"
            @click="submitLogin()"
          />
        </div>
      </el-form>
    </div>
  </div>
</template>

<script>
import '~/assets/css/sign.css'
import '~/assets/css/iconfont.css'
import loginApi from '@/api/login'
import cookie from 'js-cookie'

export default {
  layout: 'sign',
  data() {
    return {
      user: {
        mail: '',
        password: '',
      },
      loginInfo: {},
    }
  },

  methods: {
    submitLogin() {
      //第一步 调用接口进行登录，返回token字符串
      loginApi
        .submitLogin(this.user)
        .then((response) => {
          //第二步 获取token字符串放到cookie里面
          //第一个参数cookie名称，第二个参数值，第三个参数作用范围
          cookie.set('guli_token', response.data.data.token, {
            domain: 'localhost',
          })
          //第四步 调用接口 根据token获取用户信息，为了首页面显示
          loginApi.getLoginInfo(response.data.data.token).then((response) => {
            // 提示消息
            this.$message({
              type: 'success',
              message: '登录成功!',
            })
            this.loginInfo = JSON.stringify(response.data.data.loginInfo)
            //获取返回用户信息，放到cookie里面
            cookie.set('guli_ucenter', this.loginInfo, {
              domain: 'localhost',
            })
            //跳转页面
            //this.$route.push({path:'/'})
            window.location.href = '/'
          })
        })
        .catch((error) => {
          console.log(error)
        })
    },
    // 校验手机号格式
    checkPhone(rule, value, callback) {
      //debugger
      if (!/^1[34578]\d{9}$/.test(value)) {
        return callback(new Error('手机号码格式不正确'))
      }
      return callback()
    },
    // 校验邮箱
    checkMail(rule, value, callback) {
      //debugger
      if (
        !/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(
          value
        )
      ) {
        return callback(new Error('邮箱格式不正确'))
      }
      return callback()
    },
  },
}
</script>
<style>
.el-form-item__error {
  z-index: 9999999;
}
.el-icon {
  vertical-align: middle;
  margin-top: 13px
}
</style>
